package main

import (
	"common/config"
	"common/logs"
	"common/metrics"
	"context"
	"flag"
	"fmt"
	"user/app"
)

var configFile = flag.String("config", "application.yml", "config file")

func main() {
	flag.Parse()
	// 1. 加载配置文件
	config.InitConfig(*configFile)
	// 2. 初始化日志
	logs.InitLog()
	// 3. 启动监控
	metric := config.Conf.Metric
	if metric.Enable {
		go func() {
			if err := metrics.Serve(fmt.Sprintf("0.0.0.0:%d", metric.Port)); err != nil {
				logs.Error("start metrics error: %v \n", err)
			}
		}()
	}
	// 4. 启动服务
	if err := app.Run(context.Background()); err != nil {
		logs.Fatal(err.Error())
	}
}
